<?php
/**
 * Zead
 *
 * LICENSE	
 *
 * This source file is subject to the new BSD license that is bundled
 * with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://www.opensource.org/licenses/bsd-license.php
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to eu@marcelomx.com so we can send you a copy immediately.
 *
 * @category   Zead
 * @author     Marcelo Rodrigues Gonzaga <eu@marcelomx.com>
 * @copyright  Copyright (c) 2008 Marcelo Rodrigues Gonzaga
 * @link       http://code.google.com/p/zead 
 * @license    http://www.opensource.org/licenses/bsd-license.php     New BSD License
 *
 **/


/** @see Zead_Html_Filter_Abstract **/
require_once 'Zead/Html/Filter/Abstract.php';

/**
 * @category   Zead
 * @package    Zead_Html
 * @subpackage Zead_Html_Filter
 * @copyright  Copyright (c) 2008 Marcelo Rodrigues Gonzaga 
 * @license    http://www.opensource.org/licenses/bsd-license.php     New BSD License  
 */
class Zead_Html_Filter_Exercise extends Zead_Html_Filter_Abstract
{	
	/**
	 * Aplica o filtro, eliminando os objetos DOM que são instruções de processamento.
	 * @param array Os tipos de instruções que podem ser mantidas.
	 */
	public function filter(array $types = array()) {
		$this->list = array();
		$this->types = $types;
		$this->select($this->html);
		
		// Delete the finded nodes
		foreach ($this->list as $elm)
			$elm->parentNode->removeChild($elm);

		$classname = 'Zead_Html_Filter_Exercise_'. $type;
		Zead_Loader::loadClass($classname);
		$object = new $classname();
		$object->filter();
	}
}

